# 自动化构建
# 初始化才配置仓库地址和克隆仓库
# 配置仓库地址
REPO_URL="git@gitee.com:fufuandrice/autumn-moon-music.git"

# 初始化变量，用于记录上次提交的哈希值
LAST_COMMIT=""

# 初始化记录运行的java的pid
javapid=""

# 无限循环，检测仓库变化
while true; do
  # 获取当前最新提交的哈希值
  CURRENT_COMMIT=$(git ls-remote $REPO_URL HEAD)

  # 如果当前提交的哈希值与上次提交的哈希值不同，则执行以下操作
  if [ "$CURRENT_COMMIT" != "$LAST_COMMIT" ]; then
    
    # 停止运行历史java程序
    kill -9 $javapid
    
    # 进入仓库目录
    cd /www/qiuyue/autumn-moon-music
    
    # 防止本地仓库的未知更改阻塞更新
    git checkout .

    # 更新本地仓库
    git pull --rebase origin master

    # 安装后台网页依赖
    cd /www/qiuyue/autumn-moon-music/QiuYueServer/ruoyi-ui
    npm install --legacy-peer-deps 

    # 构建后台网页
    npm run build:prod

    # 打包服务端
    cd /www/qiuyue/autumn-moon-music/QiuYueServer
    mvn clean 
    mvn package

    # 运行服务端
    cd /www/qiuyue/autumn-moon-music/QiuYueServer/ruoyi-admin/target
    java -jar /www/qiuyue/autumn-moon-music/QiuYueServer/ruoyi-admin/target/ruoyi-admin.jar -Xms500m -Xmx500m ‐XX:+UseG1GC -XX:MaxGCPauseMillis=350 -XX:SurvivorRatio=8 &
    
    # 获取服务端pid
    javapid=$!
    
    # 更新上次提交的哈希值
    LAST_COMMIT=$CURRENT_COMMIT
  fi

  # 运行项目
  # 等待一段时间后再次检测
  sleep 60
done
